API Documentation
UniquePtr.h
1 // UniquePtr.h
3 //
5 
6 namespace nkMemory
7 {
15  template <typename T>
16  class UniquePtr
17  {
18  public :
19 
20  // Constructors
24  UniquePtr () ;
33  UniquePtr (T* data) ;
42  template <typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
43  UniquePtr (U* data) ;
49  UniquePtr (const UniquePtr<T>& other) = delete ;
55  UniquePtr (UniquePtr<T>&& other) ;
56 
57  // Destructor
62 
63  public :
64 
65  // Getters
71  T* get () const ;
72 
76  bool empty () const ;
77 
78  public :
79 
80  // Management
84  void release () ;
85 
91  void reset (T* data = nullptr) ;
92 
93  public :
94 
95  // Operators
101  T& operator* () ;
102 
108  const T& operator* () const ;
109 
116  UniquePtr<T>& operator= (const UniquePtr<T>& other) = delete ;
117 
125 
129  operator bool () const ;
130 
136  bool operator! () const ;
137 
141  operator std::unique_ptr<T> () ;
142 
147  template <typename U, typename = std::enable_if_t<std::is_base_of_v<U, T>>>
148  operator std::unique_ptr<U> () ;
149 
150  public :
151 
152  // Templated constructors
158  UniquePtr (std::unique_ptr<T> stdPtr) ;
159 
166  template <typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
167  UniquePtr (std::unique_ptr<U> stdPtr) ;
168  } ;
169 }
nkMemory::UniquePtr::UniquePtr
UniquePtr(U *data)
nkMemory::UniquePtr::release
void release()
nkMemory::UniquePtr::get
T * get() const
nkMemory::UniquePtr::empty
bool empty() const
nkMemory::UniquePtr::operator=
UniquePtr< T > & operator=(const UniquePtr< T > &other)=delete
nkMemory::UniquePtr::UniquePtr
UniquePtr(T *data)
nkMemory::UniquePtr::UniquePtr
UniquePtr()
nkMemory::UniquePtr::~UniquePtr
~UniquePtr()
nkMemory::UniquePtr::operator!
bool operator!() const
nkMemory::UniquePtr::UniquePtr
UniquePtr(UniquePtr< T > &&other)
nkMemory::UniquePtr
Smart pointer owning the object instance it encapsulates.
Definition: UniquePtr.h:17
nkMemory::UniquePtr::reset
void reset(T *data=nullptr)
nkMemory::UniquePtr::UniquePtr
UniquePtr(std::unique_ptr< U > stdPtr)
nkMemory::UniquePtr::UniquePtr
UniquePtr(const UniquePtr< T > &other)=delete
nkMemory::UniquePtr::UniquePtr
UniquePtr(std::unique_ptr< T > stdPtr)
nkMemory::UniquePtr::operator*
T & operator*()
nkMemory
Encompasses all API of component NilkinsMemory.
Definition: Allocator.h:7